HerokuにRoute 53をつかって独自ドメインを設定する
Custom Domain Names for Apps | Heroku Dev Center
自分のドメインにアクセスしたらにHerokuのドメインにアクセスしたことにしたい
前提
自分のドメイン:www.example.com
Herokuのデフォルトのドメイン:your-heroku-app.herokuapp.com
Configuring Amazon Route 53 DNS for Your Heroku App | Heroku Dev Center
手順
Route 53でドメインを取得する
Heroku側に利用するすべてのドメインを教える
heroku domains:add example.com
root domainは必ず登録しなければならない
heroku domains:add www.example.com
もしこの手順を飛ばすと
Route 53側の設定によりherokuには飛ばされるけど、サイトが存在しない扱いになる
https://gyazo.com/4e63a47b20f2e3af5237080f3fc7a616
Route 53でCNAMEを指定する
www.example.com → your-heroku-app.herokuapp.com
正しく設定されているか確認する
正しく設定されていれば、host www.example.comで"www.example.com is an alias for your-heroku-app.herokuapp.com."などと表示される
kadoyau.icon
domains:addするとConfigure your app's DNS provider to point to the DNS Target 単語列.herokudns.com.と出てきて、https://dashboard.heroku.com/apps/your-app/settings にもこのレコードをALIASとかCNAMEに追加してねって出てきているけど、 上のチュートリアルとはちがう(別にどっちでも動くんだろう) t
root domainに設定したい:できるけどハックが必要
https://devcenter.heroku.com/articles/custom-domains#configuring-dns-for-root-domains
サブドメインは常にCNAMEで設定するけど、root domainのレコードはDNS providerによって異なる
Aレコードでのみroot domainを指定するDNS providerが多い
Aレコードはstatic IPを要求するので、DCのような環境では可用性に大きく影響する
Herokuはdynamic IPを使っているので、CNAMEライクなレコード(ANAMEやALIAS)を使う必要がある
例えばCloudflareはCNAME flattingをサポートしている
CNAME Flattening allows a CNAME record to be created for the root domain without violating DNS specifications.
Route 53#5c7208c93f44250000cb7685のためできないのであった
〜終〜
S3を経由して、root domainにアクセスされたらwwwサブドメインにリダイレクトするwork aroundがある
https://devcenter.heroku.com/articles/route-53#naked-root-domain
kadoyau.iconはそこまでするこだわりはないのでやっていない。必要になったら追加すればよい
最近のブラウザはexample.comと入力すると自動でwww.example.comにアクセスしたりするし、困ることも少なそう
そもそもドメイン直打ちしてる人ってごく少数なんじゃないかな?ブラウザが補完するのをつかうでしょう
#heroku
#DNS